iT邦幫忙

DAY 15
0

探索 Jenkins-CI 從認識到應用系列 第 15

15. Matrix [2][0] - 利用Jenkins進行相依性測試 (下)

  • 分享至 

  • xImage
  •  

利用Jenkins進行相依性測試 (下)

前一篇我們用了不同的JDK版本,測試相容的範圍。Matrix的能耐當然不止於測試JDK版本,這篇我們再加碼,加入Guava的所有主版本,來測試專案可正常執行的環境結果。

本篇同步發表於:http://www.gibar.co/2014/10/jenkins-matrix-combinations-plugin.html

開始前先來介紹一下Guava。Guava是由Google工程師群所維護的Java工具包,內容五花八門,而且實用,某種層度上Java8的內容受到Guava的影響很深。Google Style的專案特色,文件多、實用高、效能佳、向下絕對不保證相容。用過Google開發相關工具的人們,應該對他們這風格體驗深刻。今天的情境,專案使用Guava開發,但不知道使用的指令可以活到那一個版本......Find it!

本篇相關外掛

目標情境

使用Matrix Project測試專案使用的Guava各版本與JDK的相容性


今天目標的結果

第一步:從Maven開始

要建立多重設定,我們的專案也必需要能夠接收變數,才能透過變數引入版本的資訊,引導Maven載入指定套件,我們先講設定,下一步會說明運作原理。


pom.xml,套件以變數方式指定 https://github.com/abola/jenkins-matrix/blob/master/pom.xml

第二步:建立新軸線

設定請參考前一篇的,接續該篇內容,除了已有的JDK外,再增加了一條軸線『guava.version』,要增加不同的版本,可以使用空白或是換行為區隔


所以看來總共會測試四種JDK x 10種Guava版本,一次有40組測試!

多重設定專案的原理,說破了就知道很簡單,只是將設定轉為變數,引入build tool的執行過程中。


由引數帶入的參數會蓋過原本 <properties> 中的設定

第三步:跑吧,孩子


開始建置後,會拆解軸線上每種組合,成為獨立的作業


作業的結果會再回到專案的頁面上

結果產生出來了,看來這專案某個語法在Guava 16.0 以後有調整了API,而且是在 Guava 10 開始有的指令。而JDK5只能在Guava 11.0前的版本使用。

第四步:跑吧,孫子

既然,官方都有說明Guava 12版開始必需使用JDK6+,那我們沒有必要每次都測試肯定會錯的部份了。這篇最後再介紹一組外掛 Matrix Combinations Plugin,讓你可以自訂執行Matrix 中的部份片段。使用的方法比較特別,回到專案的組態設定畫面。將參數化建置勾選起來吧!


在新增參數中可以找到『Matrix Combinations Parameter』的選項


專案建置畫面會先詢問,取消勾選不必要的版本

Jenkins 的Matrix Project原理並不難,只是需要與Build Tool整合,例如在pom.xml中,將核心的lib以變數的方式宣告版本就是不錯的開始。

這篇的執行過程中,一口氣就開了40個作業同時進行,有什麼方法加快消化排隊的作業嗎?建立Slave主機!奴役更多的Jenkins來為我們工作。但每奴役一個Jenkins就要再設定一次環境,奴役他們也挺麻煩的。直到近期火紅的技術,Docker漂亮的解決了,奴役Jenkins變簡單了!下一系列,從使用Docker建立Jenkins服務開始,並認識Jenkins Slave 。

下一篇:Docker - Docker、Docker、Docker (上)

本篇同步發表於:http://www.gibar.co/2014/10/jenkins-matrix-combinations-plugin.html


上一篇
14. 駭客任務 - 利用Jenkins進行相依性測試 (上)
下一篇
16. Docker - Docker, Docker, Docker Slave篇 (上)
系列文
探索 Jenkins-CI 從認識到應用16
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言